package com.foodcommunity.service;

import com.foodcommunity.common.Result;
import com.foodcommunity.dto.LoginDTO;
import com.foodcommunity.dto.RegisterDTO;
import com.foodcommunity.dto.UpdateProfileDTO;
import com.foodcommunity.entity.User;

import java.util.Map;

public interface UserService {
    /**
     * 用户注册
     */
    Result<User> register(RegisterDTO registerDTO);

    /**
     * 用户登录
     */
    Result<User> login(LoginDTO loginDTO);

    /**
     * 更新用户信息
     */
    Result<User> updateProfile(Long userId, UpdateProfileDTO profileDTO);

    /**
     * 获取用户信息
     */
    Result<User> getUserInfo(Long id);

    /**
     * 检查用户名是否存在
     */
    boolean checkUsername(String username);

    Result<User> updateAvatar(Long userId, String avatarUrl);
    Result<User> updateBackground(Long userId, String backgroundUrl);

    boolean updateUser(User user);
    
    /**
     * 获取用户列表（分页）
     * @param page 页码
     * @param size 每页大小
     * @param keyword 搜索关键词（可选）
     * @return 包含用户列表和分页信息的Map
     */
    Map<String, Object> getUserList(int page, int size, String keyword);
    
    /**
     * 删除用户
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteUser(Long userId);
}